Loading Libraries

library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.3.5     ✓ purrr   0.3.4
## ✓ tibble  3.1.4     ✓ dplyr   1.0.7
## ✓ tidyr   1.1.3     ✓ stringr 1.4.0
## ✓ readr   1.4.0     ✓ forcats 0.5.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
# install.packages("vtable")
library(vtable)
## Loading required package: kableExtra
## 
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
## 
##     group_rows
# install.packages("Hmisc")
library("Hmisc")
## Loading required package: lattice
## Loading required package: survival
## Loading required package: Formula
## 
## Attaching package: 'Hmisc'
## The following objects are masked from 'package:dplyr':
## 
##     src, summarize
## The following objects are masked from 'package:base':
## 
##     format.pval, units
# install.packages("corrplot")
library(corrplot)
## corrplot 0.92 loaded
library(naniar)
library(corrplot)
library(stargazer)
## 
## Please cite as:
##  Hlavac, Marek (2018). stargazer: Well-Formatted Regression and Summary Statistics Tables.
##  R package version 5.2.2. https://CRAN.R-project.org/package=stargazer
library(htmltools)

Loading Data

df <- read_csv("../../data/final/small_data_imputed.csv")
## 
## ── Column specification ────────────────────────────────────────────────────────
## cols(
##   iso = col_character(),
##   country_name = col_character(),
##   `value.Control of Corruption: Estimate` = col_double(),
##   `value.Government Effectiveness: Estimate` = col_double(),
##   `value.Rule of Law: Estimate` = col_double(),
##   conflict_stock_displacement_raw = col_double(),
##   disaster_stock_displacementr_raw = col_double(),
##   AIR = col_double(),
##   CCH = col_double(),
##   ims_both_sex = col_double(),
##   estimated_refugee_stock_incl_asylum_seekers_both_sexes = col_double(),
##   `GDP per capita (constant 2015 US$)` = col_double(),
##   D12 = col_double(),
##   D_avg = col_double(),
##   hdi_value = col_double(),
##   `value.Gini index (World Bank estimate)` = col_double(),
##   `P1: State Legitimacy` = col_double()
## )
output.fig.dir <- "../../output/figures"
output.tab.dir <- "../../output/tables"

SAVE.RESULTS = TRUE

df <- df %>% 
  rename(migrant_stock=ims_both_sex, 
         refugee_stock=estimated_refugee_stock_incl_asylum_seekers_both_sexes,
         disaster_displacement=disaster_stock_displacementr_raw,
         conflict_displacement=conflict_stock_displacement_raw, 
         climate_change=CCH, 
         air_quality=AIR, 
         rule_of_law=`value.Rule of Law: Estimate`, 
         gov_effectiveness=`value.Government Effectiveness: Estimate`, 
         corruption_control=`value.Control of Corruption: Estimate`,
         state_legit=`P1: State Legitimacy`, 
         cpa_d_12=D12, 
         cpa_d_avg=D_avg, 
         gdp=`GDP per capita (constant 2015 US$)`, 
         gini=`value.Gini index (World Bank estimate)`) %>% 
  mutate(conflict_displacement=conflict_displacement/10000, 
         disaster_displacement=disaster_displacement/10000,
         migrant_stock=migrant_stock/10000,
         refugee_stock=refugee_stock/10000,
         gdp=gdp/1000,
         state_legit=10-state_legit)

col_names <- c('migrant_stock'='Migrant Stock (10,000s)', 
               'refugee_stock'='Refugee Stock (10,000s)',
               'disaster_displacement'='Internal Displacement Due to Disasters (10,000s)',
               'conflict_displacement'='Internal Displacement Due to Conflict (10,000s)', 
               'climate_change'='Climate Change', 
               'air_quality'='Air Quality', 
               'rule_of_law'='Rule of Law', 
               'gov_effectiveness'='Government Effectiveness', 
               'corruption_control'='Control of Corruption',
               'state_legit'='State Legitimacy', 
               'cpa_d_12'='CPA: D-12', 
               'cpa_d_avg'='CPA: Cluster D Average', 
               'gdp'='GDP Per Capita (1,000s)', 
               'hdi_value'="HDI",
               'gini'="Gini Index") 

names(df)
##  [1] "iso"                   "country_name"          "corruption_control"   
##  [4] "gov_effectiveness"     "rule_of_law"           "conflict_displacement"
##  [7] "disaster_displacement" "air_quality"           "climate_change"       
## [10] "migrant_stock"         "refugee_stock"         "gdp"                  
## [13] "cpa_d_12"              "cpa_d_avg"             "hdi_value"            
## [16] "gini"                  "state_legit"

Descriptive Statistics

Missingness

vis_miss(df, sort_miss = T) + 
  ylab("Countries") + 
  theme(axis.text.y = element_blank(),
        axis.ticks.x = element_line(),
        panel.grid = element_blank(), 
        axis.text.x = element_text(angle=90))

if (SAVE.RESULTS) {
  ggsave(paste(output.fig.dir, '/missingness.png', sep=''), width = 5, height = 8)
}

Summary Statistics

sumtable(df, out='return')
##                 Variable  N   Mean Std. Dev.    Min Pctl. 25 Pctl. 75     Max
## 1     corruption_control 47 -0.099     0.894 -1.542   -0.576    0.468    2.15
## 2      gov_effectiveness 47 -0.052     0.843 -1.523   -0.738    0.371   1.662
## 3            rule_of_law 47 -0.107     0.856 -1.808   -0.728    0.362   1.883
## 4  conflict_displacement 46  13.86    53.809      0        0    1.166 354.686
## 5  disaster_displacement 46  8.732    24.202      0        0    1.177   111.7
## 6            air_quality 49 41.565    26.903    9.9     26.8     50.3     100
## 7         climate_change 45 41.216    14.713   1.02       31     50.6    70.4
## 8          migrant_stock 47 96.677   164.354  0.059    1.124  127.187 768.586
## 9          refugee_stock 29 11.852    30.309  0.001    0.074    7.248 142.815
## 10                   gdp 46  9.837    14.729   0.53    2.241    7.941  58.057
## 11              cpa_d_12 25   3.42     0.731    1.5        3        4       5
## 12             cpa_d_avg 25    3.4     0.533    2.7        3      3.8       5
## 13             hdi_value 43  0.726     0.117  0.511    0.626    0.796   0.949
## 14                  gini 33 35.664     4.269     28     32.8     38.2    46.5
## 15           state_legit 38  3.718     2.541    0.2      1.8    5.675     9.5
if (SAVE.RESULTS) {
  sumtable(df, out='csv', file=paste(output.tab.dir, '/summary_table.csv', sep=''))
}
##                 Variable  N   Mean Std. Dev.    Min Pctl. 25 Pctl. 75     Max
## 1     corruption_control 47 -0.099     0.894 -1.542   -0.576    0.468    2.15
## 2      gov_effectiveness 47 -0.052     0.843 -1.523   -0.738    0.371   1.662
## 3            rule_of_law 47 -0.107     0.856 -1.808   -0.728    0.362   1.883
## 4  conflict_displacement 46  13.86    53.809      0        0    1.166 354.686
## 5  disaster_displacement 46  8.732    24.202      0        0    1.177   111.7
## 6            air_quality 49 41.565    26.903    9.9     26.8     50.3     100
## 7         climate_change 45 41.216    14.713   1.02       31     50.6    70.4
## 8          migrant_stock 47 96.677   164.354  0.059    1.124  127.187 768.586
## 9          refugee_stock 29 11.852    30.309  0.001    0.074    7.248 142.815
## 10                   gdp 46  9.837    14.729   0.53    2.241    7.941  58.057
## 11              cpa_d_12 25   3.42     0.731    1.5        3        4       5
## 12             cpa_d_avg 25    3.4     0.533    2.7        3      3.8       5
## 13             hdi_value 43  0.726     0.117  0.511    0.626    0.796   0.949
## 14                  gini 33 35.664     4.269     28     32.8     38.2    46.5
## 15           state_legit 38  3.718     2.541    0.2      1.8    5.675     9.5

Correlation Matrix

df.rcorr <- df %>% 
  select(-iso, -country_name) %>% 
  as.matrix() %>% 
  rcorr()

corrplot(corr=df.rcorr$r,
         p.mat = df.rcorr$P,
         type='lower', insig='pch', sig.level =.1, pch.cex = .9, diag=F,
         tl.cex=.7, tl.col='black', tl.offset=.5, cl.pos='r', win.asp=1)

if (SAVE.RESULTS) {
  pdf(file=paste(output.fig.dir, '/corr_matrix.pdf', sep=''))
  corrplot(corr=df.rcorr$r,
           p.mat = df.rcorr$P,
           type='lower', insig='pch', sig.level =.1, pch.cex = .9, diag=F,
           tl.cex=.7, tl.col='black', tl.offset=.5, cl.pos='r', win.asp=1)
  dev.off()
}
## quartz_off_screen 
##                 2
dist_plots <- lapply(names(df %>% select(-iso, -country_name)), function(var_x){
  p <- 
    ggplot(df) +
    aes_string(var_x) +
    theme_light() +
    theme(
      axis.text = element_blank(),
      axis.title.y = element_blank(),
      axis.title.x = element_text(family='Helvetica', size=9),
      axis.ticks = element_blank()
      )
    
  if(is.numeric(df[[var_x]])) {
    p <- p + geom_density()
  }
})


cowplot::plot_grid(plotlist = dist_plots)
## Warning: Removed 2 rows containing non-finite values (stat_density).

## Warning: Removed 2 rows containing non-finite values (stat_density).

## Warning: Removed 2 rows containing non-finite values (stat_density).
## Warning: Removed 3 rows containing non-finite values (stat_density).

## Warning: Removed 3 rows containing non-finite values (stat_density).
## Warning: Removed 4 rows containing non-finite values (stat_density).
## Warning: Removed 2 rows containing non-finite values (stat_density).
## Warning: Removed 20 rows containing non-finite values (stat_density).
## Warning: Removed 3 rows containing non-finite values (stat_density).
## Warning: Removed 24 rows containing non-finite values (stat_density).

## Warning: Removed 24 rows containing non-finite values (stat_density).
## Warning: Removed 6 rows containing non-finite values (stat_density).
## Warning: Removed 16 rows containing non-finite values (stat_density).
## Warning: Removed 11 rows containing non-finite values (stat_density).

if (SAVE.RESULTS) {
  ggsave(filename = paste(output.fig.dir, '/distributions.png', sep = ''))
}
## Saving 7 x 5 in image

All countries

lapply(names(df %>% select(-iso, -country_name, -state_legit)), 
          function(var_x){
              plt <- ggplot(df, aes_string(x=var_x, y='state_legit')) + 
              geom_point(colour='orange') +
              stat_smooth(method='lm', formula='y~x', fullrange=T, color='purple') + 
              ggrepel::geom_text_repel(label=df$iso) +
              theme_classic() + 
              labs(title=paste(col_names[var_x], 'vs.', 'State Legitimacy'))
              print(plt)
            
            if (SAVE.RESULTS) {
              ggsave(paste(output.fig.dir, '/state_legit_X_', var_x, '.png', sep=''))
            }
          }
       )
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).

## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).

## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).

## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).
## Warning: ggrepel: 7 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps
## Saving 7 x 5 in image
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).
## Warning: ggrepel: 7 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps

## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).

## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).

## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).

## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).

## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).
## Warning: Removed 22 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).
## Warning: Removed 22 rows containing missing values (geom_text_repel).

## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).
## Warning: ggrepel: 1 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps
## Saving 7 x 5 in image
## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).
## Warning: ggrepel: 1 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps

## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning: Removed 31 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning: Removed 31 rows containing missing values (geom_text_repel).

## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning: Removed 31 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning: Removed 31 rows containing missing values (geom_text_repel).

## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).

## Warning: Removed 20 rows containing non-finite values (stat_smooth).
## Warning: Removed 20 rows containing missing values (geom_point).
## Warning: Removed 20 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 20 rows containing non-finite values (stat_smooth).
## Warning: Removed 20 rows containing missing values (geom_point).
## Warning: Removed 20 rows containing missing values (geom_text_repel).

## [[1]]
## [1] "../../output/figures/state_legit_X_corruption_control.png"
## 
## [[2]]
## [1] "../../output/figures/state_legit_X_gov_effectiveness.png"
## 
## [[3]]
## [1] "../../output/figures/state_legit_X_rule_of_law.png"
## 
## [[4]]
## [1] "../../output/figures/state_legit_X_conflict_displacement.png"
## 
## [[5]]
## [1] "../../output/figures/state_legit_X_disaster_displacement.png"
## 
## [[6]]
## [1] "../../output/figures/state_legit_X_air_quality.png"
## 
## [[7]]
## [1] "../../output/figures/state_legit_X_climate_change.png"
## 
## [[8]]
## [1] "../../output/figures/state_legit_X_migrant_stock.png"
## 
## [[9]]
## [1] "../../output/figures/state_legit_X_refugee_stock.png"
## 
## [[10]]
## [1] "../../output/figures/state_legit_X_gdp.png"
## 
## [[11]]
## [1] "../../output/figures/state_legit_X_cpa_d_12.png"
## 
## [[12]]
## [1] "../../output/figures/state_legit_X_cpa_d_avg.png"
## 
## [[13]]
## [1] "../../output/figures/state_legit_X_hdi_value.png"
## 
## [[14]]
## [1] "../../output/figures/state_legit_X_gini.png"

Recipient Countries

adb <- read_csv("../../data/final/adb-members.csv")
## 
## ── Column specification ────────────────────────────────────────────────────────
## cols(
##   country_name = col_character(),
##   iso = col_character(),
##   region = col_character(),
##   donor = col_double(),
##   sids = col_double(),
##   ldc = col_double()
## )
df.recip <- adb %>% 
  select(iso, donor) %>% 
  right_join(df, by='iso') %>% 
  filter(donor==0)

lapply(names(df.recip %>% select(-iso, -country_name, -state_legit, -donor)), 
          function(var_x){
              plt <- ggplot(df.recip, aes_string(x=var_x, y='state_legit')) + 
              geom_point(colour='orange') +
              stat_smooth(method='lm', formula='y~x', fullrange=T, color='purple') + 
              ggrepel::geom_text_repel(label=df.recip$iso) +
              theme_classic() + 
              labs(title=paste(col_names[var_x], 'vs.', 'State Legitimacy'), subtitle="Recipient Countries")
              print(plt)
            
            if (SAVE.RESULTS) {
              ggsave(paste(output.fig.dir, '/state_legit_X_', var_x, '_recipients', '.png', sep=''))
            }
          }
       )
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).

## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).

## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).

## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).

## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).

## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).

## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).

## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).

## Warning: Removed 17 rows containing non-finite values (stat_smooth).
## Warning: Removed 17 rows containing missing values (geom_point).
## Warning: Removed 17 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 17 rows containing non-finite values (stat_smooth).
## Warning: Removed 17 rows containing missing values (geom_point).
## Warning: Removed 17 rows containing missing values (geom_text_repel).

## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).

## Warning: Removed 16 rows containing non-finite values (stat_smooth).
## Warning: Removed 16 rows containing missing values (geom_point).
## Warning: Removed 16 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 16 rows containing non-finite values (stat_smooth).
## Warning: Removed 16 rows containing missing values (geom_point).
## Warning: Removed 16 rows containing missing values (geom_text_repel).

## Warning: Removed 16 rows containing non-finite values (stat_smooth).
## Warning: Removed 16 rows containing missing values (geom_point).
## Warning: Removed 16 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 16 rows containing non-finite values (stat_smooth).
## Warning: Removed 16 rows containing missing values (geom_point).
## Warning: Removed 16 rows containing missing values (geom_text_repel).

## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text_repel).

## Warning: Removed 14 rows containing non-finite values (stat_smooth).
## Warning: Removed 14 rows containing missing values (geom_point).
## Warning: Removed 14 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 14 rows containing non-finite values (stat_smooth).
## Warning: Removed 14 rows containing missing values (geom_point).
## Warning: Removed 14 rows containing missing values (geom_text_repel).

## [[1]]
## [1] "../../output/figures/state_legit_X_corruption_control_recipients.png"
## 
## [[2]]
## [1] "../../output/figures/state_legit_X_gov_effectiveness_recipients.png"
## 
## [[3]]
## [1] "../../output/figures/state_legit_X_rule_of_law_recipients.png"
## 
## [[4]]
## [1] "../../output/figures/state_legit_X_conflict_displacement_recipients.png"
## 
## [[5]]
## [1] "../../output/figures/state_legit_X_disaster_displacement_recipients.png"
## 
## [[6]]
## [1] "../../output/figures/state_legit_X_air_quality_recipients.png"
## 
## [[7]]
## [1] "../../output/figures/state_legit_X_climate_change_recipients.png"
## 
## [[8]]
## [1] "../../output/figures/state_legit_X_migrant_stock_recipients.png"
## 
## [[9]]
## [1] "../../output/figures/state_legit_X_refugee_stock_recipients.png"
## 
## [[10]]
## [1] "../../output/figures/state_legit_X_gdp_recipients.png"
## 
## [[11]]
## [1] "../../output/figures/state_legit_X_cpa_d_12_recipients.png"
## 
## [[12]]
## [1] "../../output/figures/state_legit_X_cpa_d_avg_recipients.png"
## 
## [[13]]
## [1] "../../output/figures/state_legit_X_hdi_value_recipients.png"
## 
## [[14]]
## [1] "../../output/figures/state_legit_X_gini_recipients.png"

All Countries Except Afghanistan

df.noafg <- df %>% filter(iso != 'AFG')

lapply(names(df.noafg %>% select(-iso, -country_name, -state_legit)), 
          function(var_x){
              plt <- ggplot(df.noafg %>% filter(iso != 'AFG'), aes_string(x=var_x, y='state_legit')) + 
              geom_point(colour='orange') +
              stat_smooth(method='lm', formula='y~x', fullrange=T, color='purple') + 
              ggrepel::geom_text_repel(label=df.noafg$iso) +
              theme_classic() + 
              labs(title=paste(col_names[var_x], 'vs.', 'State Legitimacy'))
              print(plt)
            
            if (SAVE.RESULTS) {
              ggsave(paste(output.fig.dir, '/state_legit_X_', var_x, '_NOAFG', '.png', sep=''))
            }
          }
       )
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).

## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).

## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).

## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).

## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_point).
## Warning: Removed 12 rows containing missing values (geom_text_repel).

## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).

## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).

## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).

## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).
## Warning: Removed 22 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).
## Warning: Removed 22 rows containing missing values (geom_text_repel).

## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).

## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning: Removed 31 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning: Removed 31 rows containing missing values (geom_text_repel).

## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning: Removed 31 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 31 rows containing non-finite values (stat_smooth).
## Warning: Removed 31 rows containing missing values (geom_point).
## Warning: Removed 31 rows containing missing values (geom_text_repel).

## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 11 rows containing non-finite values (stat_smooth).
## Warning: Removed 11 rows containing missing values (geom_point).
## Warning: Removed 11 rows containing missing values (geom_text_repel).

## Warning: Removed 19 rows containing non-finite values (stat_smooth).
## Warning: Removed 19 rows containing missing values (geom_point).
## Warning: Removed 19 rows containing missing values (geom_text_repel).
## Saving 7 x 5 in image
## Warning: Removed 19 rows containing non-finite values (stat_smooth).
## Warning: Removed 19 rows containing missing values (geom_point).
## Warning: Removed 19 rows containing missing values (geom_text_repel).

## [[1]]
## [1] "../../output/figures/state_legit_X_corruption_control_NOAFG.png"
## 
## [[2]]
## [1] "../../output/figures/state_legit_X_gov_effectiveness_NOAFG.png"
## 
## [[3]]
## [1] "../../output/figures/state_legit_X_rule_of_law_NOAFG.png"
## 
## [[4]]
## [1] "../../output/figures/state_legit_X_conflict_displacement_NOAFG.png"
## 
## [[5]]
## [1] "../../output/figures/state_legit_X_disaster_displacement_NOAFG.png"
## 
## [[6]]
## [1] "../../output/figures/state_legit_X_air_quality_NOAFG.png"
## 
## [[7]]
## [1] "../../output/figures/state_legit_X_climate_change_NOAFG.png"
## 
## [[8]]
## [1] "../../output/figures/state_legit_X_migrant_stock_NOAFG.png"
## 
## [[9]]
## [1] "../../output/figures/state_legit_X_refugee_stock_NOAFG.png"
## 
## [[10]]
## [1] "../../output/figures/state_legit_X_gdp_NOAFG.png"
## 
## [[11]]
## [1] "../../output/figures/state_legit_X_cpa_d_12_NOAFG.png"
## 
## [[12]]
## [1] "../../output/figures/state_legit_X_cpa_d_avg_NOAFG.png"
## 
## [[13]]
## [1] "../../output/figures/state_legit_X_hdi_value_NOAFG.png"
## 
## [[14]]
## [1] "../../output/figures/state_legit_X_gini_NOAFG.png"
climate.model <- lm(state_legit ~ climate_change + air_quality + gdp, df)
governance.model <- lm(state_legit ~ rule_of_law + gov_effectiveness + corruption_control + gdp, df)
migration.model <- lm(state_legit ~ migrant_stock + refugee_stock + conflict_displacement + disaster_displacement + gdp, df)
full.model <- lm(state_legit ~ rule_of_law + gov_effectiveness + corruption_control + migrant_stock + refugee_stock + conflict_displacement + disaster_displacement + climate_change + air_quality + gdp, df)

stargazer(climate.model, migration.model, governance.model, full.model, type='text')
## 
## =================================================================================================================
##                                                           Dependent variable:                                    
##                       -------------------------------------------------------------------------------------------
##                                                               state_legit                                        
##                                (1)                   (2)                    (3)                     (4)          
## -----------------------------------------------------------------------------------------------------------------
## climate_change               -0.004                                                               0.0001         
##                              (0.029)                                                              (0.029)        
##                                                                                                                  
## air_quality                   0.038                                                               -0.027         
##                              (0.034)                                                              (0.033)        
##                                                                                                                  
## migrant_stock                                       -0.004                                        -0.004         
##                                                    (0.002)                                        (0.002)        
##                                                                                                                  
## refugee_stock                                      -0.024*                                       -0.030**        
##                                                    (0.014)                                        (0.012)        
##                                                                                                                  
## conflict_displacement                             -0.024***                                      -0.017**        
##                                                    (0.008)                                        (0.007)        
##                                                                                                                  
## disaster_displacement                              0.071***                                      0.065***        
##                                                    (0.022)                                        (0.018)        
##                                                                                                                  
## rule_of_law                                                               2.227**                4.586***        
##                                                                           (1.035)                 (1.556)        
##                                                                                                                  
## gov_effectiveness                                                         -1.861**               -2.329**        
##                                                                           (0.738)                 (0.960)        
##                                                                                                                  
## corruption_control                                                         1.201*                 -0.667         
##                                                                           (0.653)                 (1.057)        
##                                                                                                                  
## gdp                           0.056                0.190***                0.043                  0.134**        
##                              (0.051)               (0.031)                (0.030)                 (0.057)        
##                                                                                                                  
## Constant                      1.940                2.234***               3.844***               4.503***        
##                              (1.296)               (0.415)                (0.388)                 (1.288)        
##                                                                                                                  
## -----------------------------------------------------------------------------------------------------------------
## Observations                   38                     27                     37                     27           
## R2                            0.421                 0.748                  0.719                   0.890         
## Adjusted R2                   0.370                 0.688                  0.684                   0.821         
## Residual Std. Error      2.017 (df = 34)       1.533 (df = 21)        1.427 (df = 32)         1.160 (df = 16)    
## F Statistic           8.245*** (df = 3; 34) 12.460*** (df = 5; 21) 20.490*** (df = 4; 32) 12.942*** (df = 10; 16)
## =================================================================================================================
## Note:                                                                                 *p<0.1; **p<0.05; ***p<0.01
if (SAVE.RESULTS) {
  stargazer(climate.model, migration.model, governance.model, full.model, type='html', out=paste(output.tab.dir, '/state_legit_reg.html', sep=''))
}
## 
## <table style="text-align:center"><tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"></td><td colspan="4"><em>Dependent variable:</em></td></tr>
## <tr><td></td><td colspan="4" style="border-bottom: 1px solid black"></td></tr>
## <tr><td style="text-align:left"></td><td colspan="4">state_legit</td></tr>
## <tr><td style="text-align:left"></td><td>(1)</td><td>(2)</td><td>(3)</td><td>(4)</td></tr>
## <tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">climate_change</td><td>-0.004</td><td></td><td></td><td>0.0001</td></tr>
## <tr><td style="text-align:left"></td><td>(0.029)</td><td></td><td></td><td>(0.029)</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">air_quality</td><td>0.038</td><td></td><td></td><td>-0.027</td></tr>
## <tr><td style="text-align:left"></td><td>(0.034)</td><td></td><td></td><td>(0.033)</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">migrant_stock</td><td></td><td>-0.004</td><td></td><td>-0.004</td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.002)</td><td></td><td>(0.002)</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">refugee_stock</td><td></td><td>-0.024<sup>*</sup></td><td></td><td>-0.030<sup>**</sup></td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.014)</td><td></td><td>(0.012)</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">conflict_displacement</td><td></td><td>-0.024<sup>***</sup></td><td></td><td>-0.017<sup>**</sup></td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.008)</td><td></td><td>(0.007)</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">disaster_displacement</td><td></td><td>0.071<sup>***</sup></td><td></td><td>0.065<sup>***</sup></td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.022)</td><td></td><td>(0.018)</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">rule_of_law</td><td></td><td></td><td>2.227<sup>**</sup></td><td>4.586<sup>***</sup></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td>(1.035)</td><td>(1.556)</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">gov_effectiveness</td><td></td><td></td><td>-1.861<sup>**</sup></td><td>-2.329<sup>**</sup></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td>(0.738)</td><td>(0.960)</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">corruption_control</td><td></td><td></td><td>1.201<sup>*</sup></td><td>-0.667</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td>(0.653)</td><td>(1.057)</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">gdp</td><td>0.056</td><td>0.190<sup>***</sup></td><td>0.043</td><td>0.134<sup>**</sup></td></tr>
## <tr><td style="text-align:left"></td><td>(0.051)</td><td>(0.031)</td><td>(0.030)</td><td>(0.057)</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">Constant</td><td>1.940</td><td>2.234<sup>***</sup></td><td>3.844<sup>***</sup></td><td>4.503<sup>***</sup></td></tr>
## <tr><td style="text-align:left"></td><td>(1.296)</td><td>(0.415)</td><td>(0.388)</td><td>(1.288)</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">Observations</td><td>38</td><td>27</td><td>37</td><td>27</td></tr>
## <tr><td style="text-align:left">R<sup>2</sup></td><td>0.421</td><td>0.748</td><td>0.719</td><td>0.890</td></tr>
## <tr><td style="text-align:left">Adjusted R<sup>2</sup></td><td>0.370</td><td>0.688</td><td>0.684</td><td>0.821</td></tr>
## <tr><td style="text-align:left">Residual Std. Error</td><td>2.017 (df = 34)</td><td>1.533 (df = 21)</td><td>1.427 (df = 32)</td><td>1.160 (df = 16)</td></tr>
## <tr><td style="text-align:left">F Statistic</td><td>8.245<sup>***</sup> (df = 3; 34)</td><td>12.460<sup>***</sup> (df = 5; 21)</td><td>20.490<sup>***</sup> (df = 4; 32)</td><td>12.942<sup>***</sup> (df = 10; 16)</td></tr>
## <tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"><em>Note:</em></td><td colspan="4" style="text-align:right"><sup>*</sup>p<0.1; <sup>**</sup>p<0.05; <sup>***</sup>p<0.01</td></tr>
## </table>
climate.model <- lm(cpa_d_avg ~ climate_change + air_quality + gdp , df)
governance.model <- lm(cpa_d_avg ~ rule_of_law + gov_effectiveness + corruption_control + gdp , df)
migration.model <- lm(cpa_d_avg ~ migrant_stock + refugee_stock + conflict_displacement + disaster_displacement + gdp , df)
full.model <- lm(cpa_d_avg ~ rule_of_law + gov_effectiveness + corruption_control + migrant_stock + refugee_stock + conflict_displacement + disaster_displacement + climate_change + air_quality + gdp , df)

stargazer(climate.model, migration.model, governance.model, full.model, type='text')
## 
## =====================================================================================
##                                             Dependent variable:                      
##                       ---------------------------------------------------------------
##                                                  cpa_d_avg                           
##                              (1)                (2)                (3)          (4)  
## -------------------------------------------------------------------------------------
## climate_change              -0.006                                             0.005 
##                            (0.009)                                                   
##                                                                                      
## air_quality                -0.032**                                            -0.017
##                            (0.015)                                                   
##                                                                                      
## migrant_stock                                  0.004                           0.004 
##                                               (0.005)                                
##                                                                                      
## refugee_stock                                 -0.001                           -0.023
##                                               (0.016)                                
##                                                                                      
## conflict_displacement                          0.001                           -0.005
##                                               (0.007)                                
##                                                                                      
## disaster_displacement                         -0.012                           0.022 
##                                               (0.023)                                
##                                                                                      
## rule_of_law                                                      -0.069        3.201 
##                                                                  (0.259)             
##                                                                                      
## gov_effectiveness                                               0.817***       -0.203
##                                                                  (0.269)             
##                                                                                      
## corruption_control                                               -0.075        -2.868
##                                                                  (0.229)             
##                                                                                      
## gdp                         0.188*            -0.043             -0.078*             
##                            (0.097)            (0.165)            (0.040)             
##                                                                                      
## Constant                   4.048***          3.611***           4.007***       3.547 
##                            (0.454)            (0.409)            (0.224)             
##                                                                                      
## -------------------------------------------------------------------------------------
## Observations                  23                10                 25            10  
## R2                          0.202              0.463              0.355        1.000 
## Adjusted R2                 0.077             -0.208              0.226              
## Residual Std. Error    0.516 (df = 19)    0.492 (df = 4)     0.469 (df = 20)         
## F Statistic           1.608 (df = 3; 19) 0.690 (df = 5; 4) 2.749* (df = 4; 20)       
## =====================================================================================
## Note:                                                     *p<0.1; **p<0.05; ***p<0.01
if (SAVE.RESULTS) {
  stargazer(climate.model, migration.model, governance.model, full.model, type='html', out=paste(output.tab.dir, '/cpa_d_avg_reg.html', sep=''))
}
## 
## <table style="text-align:center"><tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"></td><td colspan="4"><em>Dependent variable:</em></td></tr>
## <tr><td></td><td colspan="4" style="border-bottom: 1px solid black"></td></tr>
## <tr><td style="text-align:left"></td><td colspan="4">cpa_d_avg</td></tr>
## <tr><td style="text-align:left"></td><td>(1)</td><td>(2)</td><td>(3)</td><td>(4)</td></tr>
## <tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">climate_change</td><td>-0.006</td><td></td><td></td><td>0.005</td></tr>
## <tr><td style="text-align:left"></td><td>(0.009)</td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">air_quality</td><td>-0.032<sup>**</sup></td><td></td><td></td><td>-0.017</td></tr>
## <tr><td style="text-align:left"></td><td>(0.015)</td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">migrant_stock</td><td></td><td>0.004</td><td></td><td>0.004</td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.005)</td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">refugee_stock</td><td></td><td>-0.001</td><td></td><td>-0.023</td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.016)</td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">conflict_displacement</td><td></td><td>0.001</td><td></td><td>-0.005</td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.007)</td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">disaster_displacement</td><td></td><td>-0.012</td><td></td><td>0.022</td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.023)</td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">rule_of_law</td><td></td><td></td><td>-0.069</td><td>3.201</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td>(0.259)</td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">gov_effectiveness</td><td></td><td></td><td>0.817<sup>***</sup></td><td>-0.203</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td>(0.269)</td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">corruption_control</td><td></td><td></td><td>-0.075</td><td>-2.868</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td>(0.229)</td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">gdp</td><td>0.188<sup>*</sup></td><td>-0.043</td><td>-0.078<sup>*</sup></td><td></td></tr>
## <tr><td style="text-align:left"></td><td>(0.097)</td><td>(0.165)</td><td>(0.040)</td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">Constant</td><td>4.048<sup>***</sup></td><td>3.611<sup>***</sup></td><td>4.007<sup>***</sup></td><td>3.547</td></tr>
## <tr><td style="text-align:left"></td><td>(0.454)</td><td>(0.409)</td><td>(0.224)</td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">Observations</td><td>23</td><td>10</td><td>25</td><td>10</td></tr>
## <tr><td style="text-align:left">R<sup>2</sup></td><td>0.202</td><td>0.463</td><td>0.355</td><td>1.000</td></tr>
## <tr><td style="text-align:left">Adjusted R<sup>2</sup></td><td>0.077</td><td>-0.208</td><td>0.226</td><td></td></tr>
## <tr><td style="text-align:left">Residual Std. Error</td><td>0.516 (df = 19)</td><td>0.492 (df = 4)</td><td>0.469 (df = 20)</td><td></td></tr>
## <tr><td style="text-align:left">F Statistic</td><td>1.608 (df = 3; 19)</td><td>0.690 (df = 5; 4)</td><td>2.749<sup>*</sup> (df = 4; 20)</td><td></td></tr>
## <tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"><em>Note:</em></td><td colspan="4" style="text-align:right"><sup>*</sup>p<0.1; <sup>**</sup>p<0.05; <sup>***</sup>p<0.01</td></tr>
## </table>
climate.model <- lm(cpa_d_12 ~ climate_change + air_quality + gdp, df)
governance.model <- lm(cpa_d_12 ~ rule_of_law + gov_effectiveness + corruption_control + gdp, df)
migration.model <- lm(cpa_d_12 ~ migrant_stock + refugee_stock + conflict_displacement + disaster_displacement + gdp, df)
full.model <- lm(cpa_d_12 ~ rule_of_law + gov_effectiveness + corruption_control + migrant_stock + refugee_stock + conflict_displacement + disaster_displacement + climate_change + air_quality + gdp, df)

stargazer(climate.model, migration.model, governance.model, full.model, type='text')
## 
## =======================================================================================
##                                              Dependent variable:                       
##                       -----------------------------------------------------------------
##                                                   cpa_d_12                             
##                              (1)                (2)                (3)           (4)   
## ---------------------------------------------------------------------------------------
## climate_change              0.001                                               0.019  
##                            (0.012)                                                     
##                                                                                        
## air_quality                -0.036*                                              -0.053 
##                            (0.020)                                                     
##                                                                                        
## migrant_stock                                  0.007                            0.002  
##                                               (0.007)                                  
##                                                                                        
## refugee_stock                                 -0.001                            -0.011 
##                                               (0.024)                                  
##                                                                                        
## conflict_displacement                          0.003                            0.002  
##                                               (0.011)                                  
##                                                                                        
## disaster_displacement                         -0.025                           -0.00002
##                                               (0.035)                                  
##                                                                                        
## rule_of_law                                                      0.618*         3.980  
##                                                                  (0.355)               
##                                                                                        
## gov_effectiveness                                                 0.366         0.538  
##                                                                  (0.368)               
##                                                                                        
## corruption_control                                               -0.212         -3.455 
##                                                                  (0.314)               
##                                                                                        
## gdp                        0.308**             0.047             -0.019                
##                            (0.130)            (0.248)            (0.054)               
##                                                                                        
## Constant                   3.582***          3.109***           3.824***        4.239  
##                            (0.610)            (0.615)            (0.307)               
##                                                                                        
## ---------------------------------------------------------------------------------------
## Observations                  23                10                 25             10   
## R2                          0.239              0.668              0.355         1.000  
## Adjusted R2                 0.119              0.252              0.226                
## Residual Std. Error    0.692 (df = 19)    0.741 (df = 4)     0.643 (df = 20)           
## F Statistic           1.988 (df = 3; 19) 1.607 (df = 5; 4) 2.755* (df = 4; 20)         
## =======================================================================================
## Note:                                                       *p<0.1; **p<0.05; ***p<0.01
if (SAVE.RESULTS) {
  stargazer(climate.model, migration.model, governance.model, full.model, type='html', out=paste(output.tab.dir, '/cpa_d_12_reg.html', sep=''))
}
## 
## <table style="text-align:center"><tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"></td><td colspan="4"><em>Dependent variable:</em></td></tr>
## <tr><td></td><td colspan="4" style="border-bottom: 1px solid black"></td></tr>
## <tr><td style="text-align:left"></td><td colspan="4">cpa_d_12</td></tr>
## <tr><td style="text-align:left"></td><td>(1)</td><td>(2)</td><td>(3)</td><td>(4)</td></tr>
## <tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">climate_change</td><td>0.001</td><td></td><td></td><td>0.019</td></tr>
## <tr><td style="text-align:left"></td><td>(0.012)</td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">air_quality</td><td>-0.036<sup>*</sup></td><td></td><td></td><td>-0.053</td></tr>
## <tr><td style="text-align:left"></td><td>(0.020)</td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">migrant_stock</td><td></td><td>0.007</td><td></td><td>0.002</td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.007)</td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">refugee_stock</td><td></td><td>-0.001</td><td></td><td>-0.011</td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.024)</td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">conflict_displacement</td><td></td><td>0.003</td><td></td><td>0.002</td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.011)</td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">disaster_displacement</td><td></td><td>-0.025</td><td></td><td>-0.00002</td></tr>
## <tr><td style="text-align:left"></td><td></td><td>(0.035)</td><td></td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">rule_of_law</td><td></td><td></td><td>0.618<sup>*</sup></td><td>3.980</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td>(0.355)</td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">gov_effectiveness</td><td></td><td></td><td>0.366</td><td>0.538</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td>(0.368)</td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">corruption_control</td><td></td><td></td><td>-0.212</td><td>-3.455</td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td>(0.314)</td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">gdp</td><td>0.308<sup>**</sup></td><td>0.047</td><td>-0.019</td><td></td></tr>
## <tr><td style="text-align:left"></td><td>(0.130)</td><td>(0.248)</td><td>(0.054)</td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td style="text-align:left">Constant</td><td>3.582<sup>***</sup></td><td>3.109<sup>***</sup></td><td>3.824<sup>***</sup></td><td>4.239</td></tr>
## <tr><td style="text-align:left"></td><td>(0.610)</td><td>(0.615)</td><td>(0.307)</td><td></td></tr>
## <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td></tr>
## <tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">Observations</td><td>23</td><td>10</td><td>25</td><td>10</td></tr>
## <tr><td style="text-align:left">R<sup>2</sup></td><td>0.239</td><td>0.668</td><td>0.355</td><td>1.000</td></tr>
## <tr><td style="text-align:left">Adjusted R<sup>2</sup></td><td>0.119</td><td>0.252</td><td>0.226</td><td></td></tr>
## <tr><td style="text-align:left">Residual Std. Error</td><td>0.692 (df = 19)</td><td>0.741 (df = 4)</td><td>0.643 (df = 20)</td><td></td></tr>
## <tr><td style="text-align:left">F Statistic</td><td>1.988 (df = 3; 19)</td><td>1.607 (df = 5; 4)</td><td>2.755<sup>*</sup> (df = 4; 20)</td><td></td></tr>
## <tr><td colspan="5" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"><em>Note:</em></td><td colspan="4" style="text-align:right"><sup>*</sup>p<0.1; <sup>**</sup>p<0.05; <sup>***</sup>p<0.01</td></tr>
## </table>